/**
 * common
 */
 
layui.define(function(exports){
  var $ = layui.$
  ,layer = layui.layer
  ,laytpl = layui.laytpl
  ,setter = layui.setter
  ,view = layui.view
  ,admin = layui.admin
  
  //公共业务的逻辑处理可以写在此处，切换任何页面都会执行
  //…
  ,common = {
    v:'1.0.0'
    ,_GET:function(name,where) {
      var where=where || 'search';
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
      var r = window.location[where].substr(1).match(reg);
      if (r != null) return unescape(r[2]); return null;
    }
    ,hash:function(name){
      return common._GET(name,'hash');
    }
  }

  //从链接取推荐
  common.go=function(url){
    location.hash = url;
  }
  //能存取数值 bool 字符与对象 数组,取回后保持原样,null保存不处理还是之前值   不存在===null
  common.storage=function(k,v){
    k='params_'+k;
    if(v===null){
        return localStorage.removeItem(k);
    }else{
      return v==undefined ? JSON.parse(localStorage.getItem(k)) : localStorage.setItem(k, JSON.stringify(v));
    }
  }
  common.session=function(k,v){//存取localStorage
    return v==undefined ? JSON.parse(sessionStorage.getItem(k)) : sessionStorage.setItem(k,JSON.stringify(v));
  }
  common.empty=function( val )
  {
    switch (typeof(val))
    {
      case 'string':
        return common.trim(val).length == 0 ? true : false;
        break;
      case 'number':
        return val == 0;
        break;
      case 'object':
        if(common.is_array(val)){
          return val.length ==0;
        }
        return val == null;
        break;
      case 'boolean':
        return val===false;
        break;
      default:
        return true;
    }
  }
  common.is_array = function(obj) {
    return Object.prototype.toString.call(obj) === '[object Array]';
  }
  common.trim=function( text )
  {
    if (typeof(text) == "string")
    {
      return text.replace(/^\s*|\s*$/g, "");
    }
    else
    {
      return text;
    }
  }
  common.$=function(id){
    return document.getElementById(id);
  }
  common.upload=function(that){
    $(that).parent().prev('.fileToUpload').click();
  };
  common.fileUpload=function(id){//上传图片
    id.fileUpload({
      "url": "../index/tools/uploadImg?act=0",
      "is_multi"	: "false",
      "is_del"	: "true",
      "file"		: "myFile",
      "preComplete":function(evt){
        if(evt.target.responseText==''){
          view.error1('上传失败,请重试');
          return false;
        }
        return true;
      },
      "complete":function(that){
        $(that).find('.upload_progress').hide();
      }
    });
  };
  //更新某个cache
  common.update_cache=function(region,callback){
    //生成临时信息记录
    admin.req({
      url: './index/cache'
      ,type: 'get'
      ,data: {region:region}
      ,done: function(res){
        pidan[region]=res.data[region];
        localStorage['pidan']=JSON.stringify(pidan);
        callback(res);
      }
    });
  }

  //退出
  admin.events.logout = function(){
    //执行退出接口
    admin.req({
      url: './index/logout'
      ,type: 'get'
      ,data: {}
      ,done: function(res){ //这里要说明一下：done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
        
        //清空本地记录的 token，并跳转到登入页
        localStorage.removeItem("pidan");

        admin.exit();
      }
    });
  };

  
  //对外暴露的接口
  exports('common', common);
});